package com.lock8;

import java.util.concurrent.TimeUnit;


/*
* 7，标准情况下，两个线程先打印 发短信还是 打电话？ 1，发短信
* 8，在又有静态方法，又有同步方法的情况下，顺序执行。
* */
public class Test04 {
    public static void main(String[] args) {
        //两个对象，两个调用者，两把锁，第一把锁延迟了，这时候自然调用的第二个方法
        Phone4 phone = new Phone4();

        //锁的存在
        new Thread(()->{
            phone.sendSms();
        },"A").start();

        new Thread(()->{
            phone.call();
        },"B").start();
    }
}

class Phone4{

    //synchronized 锁的对象是方法的调用者！
    //static 静态方法类一加载就有了，锁的是class模板
    //而普通方法锁的不一样

    //锁的是class类模板
    public static synchronized void sendSms(){

        System.out.println("sendSms");
    }

    //普通的同步方法 锁的是调用者
    public synchronized void call(){
        System.out.println("call");
    }


}
